#include<stdio.h>
#include<sys/types.h>
#include<sys/wait.h>
#include<unistd.h>
#include<stdlib.h>
#include<string.h>
#include<errno.h>


int main()
{

  pid_t id=fork();

  if(id==0)
  {
    int cnt=5;
    //while(cnt--)
    while(cnt)
    {
      printf("I am a 子进程，pid:%d\n",getpid());
      sleep(1);
    }
    exit(1);
  }
  else
  {
    sleep(10);
    int status=0;
    pid_t sunpid=waitpid(id,&status,0);
    if(sunpid<0)
    {
      printf("子进程等待失败，pid:%d\n",id);
      exit(10);
    }
    else
    {
      int exit_code=(status>>8)&0xFF;
      int sign_code=status&0x7F;
      printf("子进程等待成功，pid:%d,exit_code:%d,sign_code:%d\n",id,exit_code,sign_code);
    }
    sleep(5);
    return 0;
  }



  return 0;


  //FILE* f=fopen("./test","r");

  //if(f==NULL)
  //{
  //  return errno;
  //}

  //return 0;



  //pid_t ret=fork();
  //if(ret==-1)
  //{
  //  perror("进程申请失败！");
  //  exit(-1);
  //}
  //else if(ret==0)
  //{
  //  while(1)
  //  {
  //    printf("我是一个子进程，pid:%d,ppid:%d\n",getpid(),getppid());
  //    sleep(1);
  //  }
  //}
  //else
  //{
  //  while(1)
  //  {
  //    printf("我是一个父进程，pid:%d\n",getpid());
  //    sleep(1);
  //  }
  //}

  //while(1)
  //{
  //  printf("当前进程ID:%d,父进程为：%d\n",getpid(),getppid());
  //  sleep(1);
  //}

  //return 0;
}

